﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.IO;
using System.Web.UI.MobileControls;
using System.Collections.Generic;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;

namespace DECOR.Touchapp
{
    public partial class catalogo : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string pRetval = "";
            if (!Request.HttpMethod.Equals("POST"))
            {
                
            }
            else
            {
                pRetval = "{\"success\": {0}, \"errors\":{\"reason\": \"{1}\"}, \"archivos\": {2} ";
                pRetval += "}";
                List<Archivos> lstArhivos = CargarArchivos();
                if (lstArhivos != null || lstArhivos.Count > 0)
                {
                    string jSon = JsonConvert.SerializeObject(lstArhivos);
                    pRetval = pRetval.Replace("{0}", "true");
                    pRetval = pRetval.Replace("{1}", "");
                    pRetval = pRetval.Replace("{2}", jSon);
                }
                else
                {
                    pRetval = pRetval.Replace("{0}", "false");
                    pRetval = pRetval.Replace("{1}", "");
                    pRetval = pRetval.Replace("{2}", "null");
                }

                Response.ContentType = "application/json; charset=UTF-8";
                Response.Write(pRetval);
            }
        }

        private List<Archivos> CargarArchivos()
        {
            Archivos objAr = new Archivos();
            List<Archivos> lstAr = new List<Archivos>();
            try
            {
                string codigoMaterial = Request.Params["codigoMaterial"]; //parametro desde sencha
                string rutaImg = Server.MapPath("~/img/" + codigoMaterial);
                string rutaImg2 = "img/" + codigoMaterial;
                //string rutaImg = "D:/Rafael/Decorcenter/DecorCenter GoogleCode/DECOR.Touchapp/img/102030/";
                //string rutaThumb = rutaImg + "thumbs\\";
                string[] archivos = Directory.GetFiles(rutaImg, "*.jpg", SearchOption.TopDirectoryOnly);

                var lista = archivos.ToList();

                foreach (var item in archivos.ToList())
                {
                    string name = System.IO.Path.GetFileName(item);
                    string desc = System.IO.Path.GetFileNameWithoutExtension(item);
                    string size = File.OpenRead(item).Length.ToString();
                    //string thumb = rutaThumb + "thumb_" + name;
                    string url = item;
                    objAr = new Archivos();
                    objAr.name = desc;
                    objAr.size = size;
                    //objAr.thumb_url = "";
                    objAr.url = rutaImg2 + "/" + name;
                    lstAr.Add(objAr);
                }
            }
            catch (DirectoryNotFoundException ex)
            {
                lstAr = new List<Archivos>();
            }
            catch (Exception ex)
            {

            }
            return lstAr;
        }
    }
}

internal class Archivos
{
    public string name { get; set; }
    public string size { get; set; }
    public string url { get; set; }
}